#include "VentanaInstructor.h"

VentanaInstructor::VentanaInstructor(Instructor *instructor) {
	this->instructor = instructor;
	this->set_title("Screencast Educacional (Instructor)");
	this->set_default_size(350, 700);

	generarMenu();
	Gtk::Widget* pMenu = pUiManager->get_widget("/Menu");

	this->cajaChat.pack_start(*pMenu, Gtk::PACK_SHRINK);

	this->add(cajaChat);
	this->show_all();
}

void VentanaInstructor::generarMenu() {
	this->pGrupo = Gtk::ActionGroup::create();
	this->pUiManager = Gtk::UIManager::create();

	this->pGrupo->add(Gtk::Action::create("MenuArchivo", "_Archivo"));
	this->pGrupo->add(Gtk::Action::create("AdjArch", "_Adjuntar Archivo"),
			sigc::mem_fun(*this, &VentanaInstructor::adjuntar));
	this->pGrupo->add(Gtk::Action::create("Salir", "_Salir"),
			sigc::mem_fun(*this, &VentanaInstructor::salir));
	this->pGrupo->add(Gtk::Action::create("MenuCuenta", "_Cuenta"));
	this->pGrupo->add(Gtk::Action::create("Login", "_Login"),
			sigc::mem_fun(*this, &VentanaInstructor::login));
	this->pGrupo->add(Gtk::Action::create("Logout", "_Logout"),
			sigc::mem_fun(*this, &VentanaInstructor::logout));
	this->pGrupo->add(Gtk::Action::create("MenuCursos", "_Cursos"));
	this->pGrupo->add(Gtk::Action::create("CrearCurso", "_Crear Curso"),
			sigc::mem_fun(*this, &VentanaInstructor::crearCurso));
	//	this->pGrupo->add(Gtk::Action::create("CursosAnt", "_Cursos Anteriores"),
	//		sigc::mem_fun(*this, &VentanaAlumno::elegirCursoAnterior));
	this->pGrupo->add(Gtk::Action::create("MenuClases", "_Clases"));
	this->pGrupo->add(Gtk::Action::create("CrearClase", "_Crear Clase"),
			sigc::mem_fun(*this, &VentanaInstructor::crearClase));
	//	this->pGrupo->add(Gtk::Action::create("ClasesAnt", "_Clases Anteriores"),
	//		sigc::mem_fun(*this, &VentanaAlumno::elegirClaseAnterior));
	this->pGrupo->add(Gtk::Action::create("IniciarClase", "_Iniciar Clase"),
			sigc::mem_fun(*this, &VentanaInstructor::iniciarClase));
	this->pGrupo->add(Gtk::Action::create("FinalizarClase", "_Finalizar Clase"),
				sigc::mem_fun(*this, &VentanaInstructor::finalizarClase));

	this->pUiManager->insert_action_group(pGrupo);
	//add_accel_group(m_refUIManager->get_accel_group());

	Glib::ustring ui_info = "<ui>"
			"  	<menubar name='Menu'>"
			"	<menu action='MenuArchivo'>"
			"      	<menuitem action='AdjArch'/>"
			//	    "      	<menuitem action='New'/>"
			//	    "      	<menuitem action='Open'/>"
			"      	<separator/>"
			"      	<menuitem action='Salir'/>"
			"   </menu>"
			"   <menu action='MenuCuenta'>"
			"      	<menuitem action='Login'/>"
			"      	<menuitem action='Logout'/>"
			"	</menu>"
			"	<menu action='MenuCursos'>"
			"      	<menuitem action='CrearCurso'/>"
			//	    "     	<menuitem action='CursosAnt'/>"
			"	</menu>"
			"	<menu action='MenuClases'>"
			"      	<menuitem action='CrearClase'/>"
			//	    "     	<menuitem action='ClasesAnt'/>"
			"	<menuitem action='IniciarClase'/>"
			"	<menuitem action='FinalizarClase'/>"
			"	</menu>"
			"  	</menubar>"
			"</ui>";

	pUiManager->add_ui_from_string(ui_info);
}

//***************************FUNCIONES DEL MENU********************************
void VentanaInstructor::adjuntar() {
	Gtk::FileChooserDialog diaAdj("Seleccione el archivo",
			Gtk::FILE_CHOOSER_ACTION_OPEN);
	diaAdj.set_transient_for(*this);
	diaAdj.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
	diaAdj.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK);
	int clicked = diaAdj.run();
	if (clicked == Gtk::RESPONSE_OK)
		;
}

void VentanaInstructor::salir() {
	Gtk::MessageDialog dialogo(*this, "Salir", false, Gtk::MESSAGE_QUESTION,
			Gtk::BUTTONS_OK_CANCEL);
	dialogo.set_secondary_text("¿Seguro que quiere salir?");
	int clicked = dialogo.run();
	if (clicked == Gtk::RESPONSE_OK) {
		//this->instructor->terminarClase("001");
		Gtk::Main::quit();
	}
}

void VentanaInstructor::login() {
	DialogoLogin dialLogin;
	dialLogin.set_transient_for(*this);
	int clicked = dialLogin.run();
	if (clicked == Gtk::RESPONSE_OK)
		instructor->login('0');
}

void VentanaInstructor::logout() {

}

void VentanaInstructor::crearCurso() {

}

void VentanaInstructor::crearClase() {
	DialogoCrearClase dialCrear;
	dialCrear.set_transient_for(*this);
	int clicked = dialCrear.run();
	if (clicked == Gtk::RESPONSE_OK)
		this->instructor->crearClase("001", "Programacion Orientada a nada");
}

void VentanaInstructor::iniciarClase() {
	DialogoIniciarClase dialIniciar;
	dialIniciar.set_transient_for(*this);
	int clicked = dialIniciar.run();
	if (clicked == Gtk::RESPONSE_OK)
		this->instructor->iniciarClase("001");
}

void VentanaInstructor::finalizarClase() {
	this->instructor->terminarClase("001");
}
//***************************************************************************

VentanaInstructor::~VentanaInstructor() {}
